package study.activiti.ssh.web.action;


import java.io.IOException;
import java.util.List;

import study.activiti.ssh.domain.Employee;
import study.activiti.ssh.domain.LeaveBill;
import study.activiti.ssh.service.ILeaveBillService;
import study.activiti.ssh.utils.SessionContext;
import study.activiti.ssh.utils.ValueContext;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

@SuppressWarnings("serial")
public class LeaveBillAction extends ActionSupport implements ModelDriven<LeaveBill> {

	private LeaveBill leaveBill = new LeaveBill();
	
	
	public LeaveBill getModel() {
		return leaveBill;
	}
	
	private ILeaveBillService leaveBillService;

	public void setLeaveBillService(ILeaveBillService leaveBillService) {
		this.leaveBillService = leaveBillService;
	}

	/**  
	* @Name: home（方法的名称）
	* @Description: 请假管理首页显示（方法的描述）
	* @Author: 李超（作者）
	* @Version: V1.00 （版本号）
	* @Create Date: 2016-12-16 （创建日期）
	* @Parameters: 无（方法的入参，如果没有，填写为“无”）
	* @Return: 无（返回值，如果没有，填写为“无”）
	*/
	public String home(){
		//查询当前登录人所有的请假单（对应表a_leavebill）
		List<LeaveBill> lbList = leaveBillService.findLeaveBillList() ;
		//将查询结果放入值栈上下文中
		ValueContext.putValueContext("lbList", lbList) ;
		return "home";
	}
	
	/**  
	* @Name: input（方法的名称）
	* @Description: 添加/修改请假申请（方法的描述）
	* @Author: 李超（作者）
	* @Version: V1.00 （版本号）
	* @Create Date: 2016-12-16 （创建日期）
	* @Parameters: 无（方法的入参，如果没有，填写为“无”）
	* @Return: 无（返回值，如果没有，填写为“无”）
	*/
	public String input(){
		//获取请假单id
		Long id = leaveBill.getId() ;
		//如果id不为空，则为修改请假单请求，获取请假单信息并在页面中回显
		if(id != null) {
			LeaveBill leaveBill = leaveBillService.findLeaveBillById(id) ;
			//将查询到的结果放入到栈顶，页面使用struts2标签，支持表单回显
			ValueContext.putValueStack(leaveBill) ;
		}
		return "input";
	}
	
	/**  
	* @Name: save（方法的名称）
	* @Description: 保存/更新，请假申请（方法的描述）
	* @Author: 李超（作者）
	* @Version: V1.00 （版本号）
	* @Create Date: 2016-12-16 （创建日期）
	* @Parameters: 无（方法的入参，如果没有，填写为“无”）
	* @Return: 无（返回值，如果没有，填写为“无”）
	*/
	public String save() {
		//获取请假单id
		Long id = leaveBill.getId() ;
		//1、id等于空，为新增请假单
		if(id == null) {
			leaveBillService.saveLeaveBill(leaveBill) ;
		} else { //2、id不为空，则为更新请假单
			leaveBillService.updateLeaveBill(leaveBill) ;
		}
		return "save";
	}
	
	/**  
	* @Name: delete（方法的名称）
	* @Description: 删除请假申请（方法的描述）
	* @Author: 李超（作者）
	* @Version: V1.00 （版本号）
	* @Create Date: 2016-12-16 （创建日期）
	* @Parameters: 无（方法的入参，如果没有，填写为“无”）
	* @Return: 无（返回值，如果没有，填写为“无”）
	*/
	public String delete(){
		//获取请假申请单id
		Long id = leaveBill.getId() ;
		leaveBillService.deleteLeaveBillById(id) ;
		return "save";
	}
	
}
